﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Ucb.Workshop.Business;

namespace Ucb.Workshop.Presenters
{
    public class RegistroMarcaPresenter
    {
        private IRegistroMarcaView view;

        public IRegistroMarcaView View { get { return view; } }
        public Marca MarcaActual { get; set; }

        public RegistroMarcaPresenter(IRegistroMarcaView view)
        {
            this.view = view;
        }

        public void OnRegistroMarca()
        {
            if(HayValoresValidos())
            {
                Marca unaMarca = ObtenerMarcaDeLaVista();
                RegistrarMarca(unaMarca);
                MarcaActual = unaMarca;
            }
            else
            {
                throw new Exception("Se requiere que inserte un nombre valido....");
            }
        }

        private void RegistrarMarca(Marca unaMarca)
        {
            if (!ExisteMarca(unaMarca))
            {
                unaMarca.Insertar();
            }
            else
            {
                throw new Exception("Ya esta registrado esta marca, no se puede registrar....");
            }
        }

        public bool ExisteMarca(Marca unaMarca)
        {
            return unaMarca.GetMarcaBy(unaMarca.Nombre) != null;
        }

        private Marca ObtenerMarcaDeLaVista()
        {
            Marca unaMarca = new Marca();
            unaMarca.Nombre = View.Nombre;
            return unaMarca;
        }

        private bool HayValoresValidos()
        {
            bool resultado = true;

            if (string.IsNullOrEmpty(View.Nombre))
            {
                resultado = false;
            }

            return resultado;
        }

    }
}
